package com.topwater.topwater.service.impl;

import com.topwater.topwater.entity.SyEmp;
import com.topwater.topwater.dao.SyEmpDao;
import com.topwater.topwater.service.SyEmpService;
import com.topwater.topwater.utils.ResponseData;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import javax.annotation.Resource;

/**
 * (SyEmp)表服务实现类
 *
 * @author 胡文 qq:986776
 * 自定义生成器制造
 */
@Service("syEmpService")
public class SyEmpServiceImpl implements SyEmpService {
    @Resource
    private SyEmpDao syEmpDao;

    /**
     * 通过ID查询单条数据
     *
     * @param id 主键
     * @return 实例对象
     */
    @Override
    public SyEmp queryById(Integer id) {
        return this.syEmpDao.queryById(id);
    }


    /**
     * 新增数据
     *
     * @param syEmp 实例对象
     * @return 实例对象
     */
    @Override
    public SyEmp insert(SyEmp syEmp) {
        this.syEmpDao.insert(syEmp);
        return syEmp;
    }

    @Override
    public SyEmp insertNotNull(SyEmp syEmp) {
        this.syEmpDao.insertNotNull(syEmp);
        return syEmp;
    }

    /**
     * 修改数据
     *
     * @param syEmp 实例对象
     * @return 实例对象
     */
    @Override
    public SyEmp update(SyEmp syEmp) {
        this.syEmpDao.update(syEmp);
        return this.queryById(syEmp.getId());
    }

    /**
     * 通过主键删除数据
     *
     * @param id 主键
     * @return 是否成功
     */
    @Override
    public boolean deleteById(Integer id) {
        return this.syEmpDao.deleteById(id) > 0;
    }

    /**
     * 字符串自动模糊查询
     **/
    @Override
    public List<SyEmp> queryByLike(SyEmp syEmp) {
        return this.syEmpDao.queryByLike(syEmp);
    }

    @Override
    public List<SyEmp> queryByLike2(String str) {
        return this.syEmpDao.queryByLike2(str);
    }

    /**
     * 多表连接查询
     */
    @Override
    public List<Map> queryJoin(@Param("syEmp") SyEmp syEmp, @Param("tables") String... tables) {
        return this.syEmpDao.queryJoin(syEmp, tables);
    }

    @Override
    public ResponseData login(SyEmp syEmp) {
        if (
                (syEmp.getEmpNo() == null || "".equals(syEmp.getEmpNo())) || (syEmp.getPassWord() == null) || "".equals(syEmp.getPassWord())
        ) {
            return ResponseData.unauthorized().putDataValue("msg", "账号或密码不能为空");
        }
        SyEmp newLoginEmp = syEmpDao.login(syEmp);
        if (newLoginEmp == null) {
            return ResponseData.unauthorized().putDataValue("msg", "账号和密码错误");
        }
        return ResponseData.ok().putDataValue("msg", newLoginEmp.getEmpName());
    }

    @Override
    public ResponseData updatePed(String nowPwd, String newPwd, String empNo) {
        int i = syEmpDao.updatePed(nowPwd, newPwd, empNo);
        if (i > 0) {
            return ResponseData.ok().putDataValue("msg", "修改成功");
        }
        return ResponseData.ok().putDataValue("msg", "修改失败");
    }

}

